# def run():
#     print("健身")
# run()
"""
调用的方式不变
原来的函数体也不变，就是加了一些新的功能
"""
# 用装饰器来去实现了
"""
def run1(func):
    def luoji():
        func()
        print("健身")
    return luoji
# 调用，但是比较沉重
# r = run1(run)
# r()
#简化调用，python的语法糖
@run1
def run():
    print("跑步")
run()
"""
"""
def person_info(func):
    def luoji(name,age,address,phone_number,sex):
        print("正在修饰函数...请等待")
        print("被修饰函数前的调用")
        func(name,age,address,phone_number)
        print(f"性别为：{sex}")
        print("函数已经调用完毕！")
    return luoji
@person_info
def student(name,age,address,phone_number):
    print(f"大家好，我叫做{name}，今年{age}岁，来自{address}，手机号码是{phone_number}")
student("赵博","95","沈阳","15948551300","女")
"""
"""
执行过程：
1、print("正在修饰函数...请等待")
2、print("被修饰函数前的调用")
3、func(name,age,address,phone_number)————》print(f"大家好，我叫做{name}，今年{age}岁，来自{address}，手机号码是{phone_number}")
4、print("函数已经调用完毕！")
"""
"""
控制台结果：
1、正在修饰函数...请等待
2、被修饰函数前的调用
3、f"大家好，我叫做{name}，今年{age}岁，来自{address}，手机号码是{phone_number}"
4、函数已经调用完毕！
"""
# 时间装饰器案例
# 测试for循环从1加到9000000000的时间
from datetime import datetime
def run_time(func):
    def new_fonc(n):
        start_time = datetime.now()
        print("开始时间%s"%start_time)
        func(n)
        end_time = datetime.now()
        print("结束时间%s"%end_time)
        time1 = end_time - start_time
        print("花费时间%s"%time1)
    return new_fonc
# 调用
# r = run_time(for1)
# r(n)
# 简化调用
n = 900000000
@run_time
def for1(n):
    sum = 0
    for i in range(1,n+1):
        sum+=i
    print(sum)
for1(n)












